AWS CLIのプロファイルを切り替えてebコマンドで既存ElasticBeanstalk Applicationにアクセスする
丹内です。
Elastic Beanstalkの操作をCLIから行うにあたり、IAMユーザを切り替えた上で実行してみました。
AWS CLIとAWS EB CLIを使います。
環境
PCはMacで、Homebrewを使います。
また、AWS CLIにはプロファイルを複数使う仕組みがあるので、それを使います。
既にElastic Beanstalkアプリケーション(Rails)が動いていて、後から参入した開発者がAWS CLIの設定をしてElastic Beanstalkの操作をしたいとします。
ツールのインストール
$ brew install awscli aws-elasticbeanstalk
Access KeyとSecret Access Keyを取得する
事前にManagement ConsoleでIAMユーザを作成し、AWS CLI用のAccess KeyとSecret Access Keyを作成します。
AWS CLIにProfileを設定する
以下のようにして、AWS CLIでprofileを作成します。
このときはAWS EB CLIではないので注意が必要です。
$ aws configure --profile private AWS Access Key ID [None]: abcd AWS Secret Access Key [None]: efgh Default region name [None]: ap-northeast-1 Default output format [None]: json
AWS CLIは~/.aws/に認証情報や設定を保存しています。Profile作成後に内容を見ると、設定が追加されていることがわかります。
~/.aws/credentials
[default] aws_access_key_id =1234 aws_secret_access_key =5678 [private] aws_access_key_id = abcd aws_secret_access_key = efgh
~/.aws/config
[default] output = json region = us-east-1 [profile private] output = json region = ap-northeast-1
AWS CLIで作成されたプロファイルは、この後AWS EB CLIで参照します。
アプリのデプロイ設定
既にprivate-rails-appという名前でRailsアプリがElastic Beanstalkで動いているとします。
ここで、eb init実行時にprofileを指定します。
$ eb init --profile private Select an application to use 1) private-rails-app 2) [ Create new Application ] (default is 1): 1
以後、ebコマンドでprofileを使用してEBにアクセスできます。
$ eb list * private-rails-app-env $ eb status Environment details for: private-rails-app-env Application name: private-rails-app Region: ap-northeast-1 Deployed Version: test123 Environment ID: e-aaaabbbb Platform: 64bit Amazon Linux 2015.03 v1.4.1 running Ruby 2.2 (Passenger Standalone) Tier: WebServer-Standard CNAME: private-rails-app-env-11223344.elasticbeanstalk.com Updated: 2015-06-10 09:00:00.000000+00:00 Status: Ready Health: Green
まとめ
Elastic BeanstalkのCLIでプロファイルを使い分けることができました。
例えば案件ごとにIAMユーザを使い分ける場合、このProfile指定などは細かなことなのですが重要になってきます。
安全・快適にAWS EB CLIライフを楽しみましょう!